<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<style>
    div {
        width: 100px;
        height: 100px;
        background-color: pink;
    }
</style>
<body>

<div>123</div>
<ul>
    <li>abc</li>
    <li>abc</li>
    <li>abc</li>
</ul>

<script>

    // 常见事件对象的属性和方法

    // 1.e.target返回的是触发事件的对象(元素)
    //  this返回的是绑定 | 注册事件的对象(元素)
    // 区别: e.target 点击了哪个元素, 就返回哪个元素.
    //      this哪个元素绑定了这个事件, 那么就返回谁
    var div = document.querySelector('div');
    var ul = document.querySelector('ul');
    div.addEventListener('click', function (e) {
        console.log(`div: ${div}`)
        console.log(div)            // <div>123</div>
        console.log(this)           // <div>123</div>
        console.log(`e.target: ${e.target}`);
        console.log(e.target)       // <div>123</div>
    })

    var obj = null;
    ul.addEventListener('click', function (e) {
        obj = e;
        // 我们给ul绑定了事件, 那么 this 就指向ul
        console.log(this);
        // 跟 this 有个非常相似的属性 currentTarget  ie678不认识
        console.log(e.currentTarget);
        // e.target 指向我们点击的那个对象, 谁触发了这个事件,
        // 我们点击的是li, e.target 指向的就是li
        console.log(e.target)
        console.log(e)
    })

    // 兼容性问题解决
    // div.onclick = function (e) {
    //     e = e || window.event;
    //     var target = e.target || e.srcElement;
    //     console.log(target);
    // }

</script>
</body>
</html>
